<?php
// +----------------------------------------------------------------------
// | 幕小铺
// +----------------------------------------------------------------------
// | 版权所有 2016~2020 幕小铺科技（大连）有限公司
// +----------------------------------------------------------------------
// | 2020/06/10
// +----------------------------------------------------------------------

namespace app\erp\home;
use app\common\controller\AuthCheck;
use think\Db;

/**
 * 调拨管理
 * @package app\cms\admin
 */
class AllocationWarehousing extends AuthCheck{
    /**
     * 首页
     * @author dou<51779987@qq.com>
     * @return json_out(code, message, data)
     */
    public function list(){
        //参数接收
        $params 		    = $this->getParams(0);//0 get 1 post
        $user_id    	    = intval(isset($params["user_id"]) ? $params["user_id"] : 0);//操作用户ID
        $from_warehouse_id  = isset($params["from_warehouse_id"]) ? $params["from_warehouse_id"] : '';//调出仓id
        $to_warehouse_id    = isset($params["to_warehouse_id"]) ? $params["to_warehouse_id"] : '';//调入仓id
        $handled_by    	    = isset($params["handled_by"]) ? $params["handled_by"] : '';//经办人
        $code    	        = isset($params["code"]) ? $params["code"] : '';//调拨单号
        $all_status    	    = intval(isset($params["all_status"]) ? $params["all_status"] : '2');//调拨单状态

        //数据验证
        $Validate = validate('Allocation', 'validate');
        if( !$Validate -> scene('allocation_list') -> check($params) ){
            json_out(-1001, $Validate -> getError(), []);//验证失败
        }
        //逻辑处理
        $list = controller('AllocationWarehousinglogic', 'logic') -> index($user_id, $code, $from_warehouse_id, $to_warehouse_id, $handled_by, $all_status);

        //数据返回
        if($list['code'] == 200){
            json_out($list['code'], $list['message'], $list['data']);
        }else{
            json_out($list['code'], $list['message'], []);
        }
    }

    /**
     * 调拨-入库操作按钮
     * @param uid 	                    int         操作人
     * @param from_warehouse_id 		int         调出仓
     * @param to_warehouse_id 		    int
     * @param remarks 		            string      备注
     * @param handled_by 		        string      经办人
     * @param code 		                string      调拨单号
     * @param sku_id 		            int         单品id
     * @param num 		                int         单品数量
     * @param all_status 		        int         状态
     * @author dou<51779987@qq.com>
     * @return json_out(code, message, (int)id)
     */
    public function add(){
        //参数接收
        $params 		    = $this->getParams(1);//0 get 1 post
        $id = $params["id"] = isset($params["aid"]) ? $params["aid"] : '';//出库申请单id
        $user_id    	    = intval(isset($params["user_id"]) ? $params["user_id"] : 0);//操作用户ID

        //数据验证
        $Validate = validate('Allocation', 'validate');
        if( !$Validate -> scene('allocation_outgoing') -> check($params) ){
            json_out(-1001, $Validate -> getError(), []);//验证失败
        }
        //检查是否出货
        $res_isout = model('ErpAllocation') -> where(['id'=>$id,'all_status'=>'4'])->count();
        if($res_isout > 0){
            json_out(-1001, '入库申请已处理，请勿重复操作！');//验证失败
        }
        //逻辑处理
        $list = controller('AllocationWarehousinglogic', 'logic') -> warehousing($user_id,$id);

        //数据返回
        if($list['code'] == 200){
            json_out($list['code'], $list['message'], $list['data']);
        }else{
            json_out($list['code'], $list['message'], []);
        }
    }

}